/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.com.losalpes.marketplace.pitrack.entities;

import co.com.losalpes.marketplace.pitrack.bos.TrackBO;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;

/**
 *
 * @author leon
 */
@SuppressWarnings({"serial", "unused", "unchecked"})
@Entity
@NamedQueries({
    @NamedQuery (name = "findByIdTrack",query = "SELECT T FROM Track T WHERE T.idTransaccion = :idTransaccion "),
    @NamedQuery (name = "findTrackList", query = "SELECT T FROM Track T WHERE T.nitFabricante = :nitFabricante"),
    @NamedQuery (name = "findTrackListByNumSeg", query = "SELECT T FROM Track T WHERE T.numSeguimiento = :numSeguimiento")
})
public class Track implements Serializable {

    @Column
    private String idTransaccion;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int tiempo;
    @Column
    private String estado;
    @Column
    private String fase;
    @Column
    private String tipoTransaccion;
    @Column
    private String usuarioFabricante;
    @Column
    private String usuarioComercio;
    @Column
    private String nitFabricante;
    @Column
    private String nitComercio;
    
    @Column
    private String numSeguimiento;

    public Track() {
    }

    public Track(String idTransaccion, int tiempo, String estado, String fase, String tipoTransaccion, String usuarioFabricante, String usuarioComercio, String nitFabricante, String nitComercio,
            String numSeguimiento) {
        this.idTransaccion = idTransaccion;
        this.tiempo = tiempo;
        this.estado = estado;
        this.fase = fase;
        this.tipoTransaccion = tipoTransaccion;
        this.usuarioFabricante = usuarioFabricante;
        this.usuarioComercio = usuarioComercio;
        this.nitFabricante = nitFabricante;
        this.nitComercio = nitComercio;
        this.numSeguimiento = numSeguimiento;
    }

    public TrackBO TrackBO() {
        TrackBO tbo = new TrackBO();
        tbo.setEstado(estado);
        tbo.setFase(fase);
        tbo.setIdTransaccion(idTransaccion);
        tbo.setNitComercio(nitComercio);
        tbo.setNitFabricante(nitFabricante);
        tbo.setTime(tiempo);
        tbo.setTipoTransaccion(tipoTransaccion);
        tbo.setUsuarioComercio(usuarioComercio);
        tbo.setUsuarioFabricante(usuarioFabricante);
        tbo.setNumSeguimiento(numSeguimiento);
        return tbo;
    }
    
    public Track(TrackBO trackbo) {
        this.idTransaccion = trackbo.getIdTransaccion();
        this.tiempo = trackbo.getTime();
        this.estado = trackbo.getEstado();
        this.fase = trackbo.getFase();
        this.tipoTransaccion = trackbo.getTipoTransaccion();
        this.usuarioFabricante = trackbo.getUsuarioFabricante();
        this.usuarioComercio = trackbo.getUsuarioComercio();
        this.nitFabricante = trackbo.getNitFabricante();
        this.nitComercio = trackbo.getNitComercio();
    }

    public String getIdTransaccion() {
        return idTransaccion;
    }

    public void setIdTransaccion(String idTransaccion) {
        this.idTransaccion = idTransaccion;
    }

    public int getTiempo() {
        return tiempo;
    }

    public void setTiempo(int tiempo) {
        this.tiempo = tiempo;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getFase() {
        return fase;
    }

    public void setFase(String fase) {
        this.fase = fase;
    }

    public String getTipoTransaccion() {
        return tipoTransaccion;
    }

    public void setTipoTransaccion(String tipoTransaccion) {
        this.tipoTransaccion = tipoTransaccion;
    }

    public String getUsuarioFabricante() {
        return usuarioFabricante;
    }

    public void setUsuarioFabricante(String usuarioFabricante) {
        this.usuarioFabricante = usuarioFabricante;
    }

    public String getUsuarioComercio() {
        return usuarioComercio;
    }

    public void setUsuarioComercio(String usuarioComercio) {
        this.usuarioComercio = usuarioComercio;
    }

    public String getNitFabricante() {
        return nitFabricante;
    }

    public void setNitFabricante(String nitFabricante) {
        this.nitFabricante = nitFabricante;
    }

    public String getNitComercio() {
        return nitComercio;
    }

    public void setNitComercio(String nitComercio) {
        this.nitComercio = nitComercio;
    }

    public String getNumSeguimiento() {
        return numSeguimiento;
    }

    public void setNumSeguimiento(String numSeguimiento) {
        this.numSeguimiento = numSeguimiento;
    }

    
    
   /* @Override
    public int hashCode() {
        int hash = 7;
        hash = 31 * hash + Objects.hashCode (this.idTransaccion );
        hash = 31 * hash + this.tiempo;
        hash = 31 * hash + Objects.hashCode(this.estado);
        hash = 31 * hash + Objects.hashCode(this.fase);
        hash = 31 * hash + Objects.hashCode(this.tipoTransaccion);
        hash = 31 * hash + Objects.hashCode(this.usuarioFabricante);
        hash = 31 * hash + Objects.hashCode(this.usuarioComercio);
        hash = 31 * hash + Objects.hashCode(this.nitFabricante);
        hash = 31 * hash + Objects.hashCode(this.nitComercio);
        return hash;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Track other = (Track) obj;
        if (this.idTransaccion != other.idTransaccion) {
            return false;
        }
        if (this.tiempo != other.tiempo) {
            return false;
        }
        if (!Objects.equals(this.estado, other.estado)) {
            return false;
        }
        if (!Objects.equals(this.fase, other.fase)) {
            return false;
        }
        if (!Objects.equals(this.tipoTransaccion, other.tipoTransaccion)) {
            return false;
        }
        if (!Objects.equals(this.usuarioFabricante, other.usuarioFabricante)) {
            return false;
        }
        if (!Objects.equals(this.usuarioComercio, other.usuarioComercio)) {
            return false;
        }
        if (!Objects.equals(this.nitFabricante, other.nitFabricante)) {
            return false;
        }
        if (!Objects.equals(this.nitComercio, other.nitComercio)) {
            return false;
        }
        return true;
    }*/
}
